home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 2: Applications / Linux Cubed Series 2 - Applications.iso / math / graphs / graphed-.1 / graphed- / usr / local / graphed / etc / simple2graphed.awk < prev    next >
Encoding:
AWK Script  |  1995-07-10  |  1.4 KB  |  81 lines

  1. BEGIN {
  2.  
  3.   FS="[     ]+";
  4.  
  5.   printf ("GRAPH \"%s\" = %s\n", name, directed);
  6.  
  7.   if (unitx == zerox) {
  8.     zerox=0; unitx=1000
  9.   }
  10.   if (unity == zeroy) {
  11.     zeroy=0; unity=1000
  12.   }
  13.   if (unitz == zeroz) {
  14.     zeroz=0; unitz=1000
  15.   }
  16. }
  17.  
  18.  
  19. {
  20.   n = $1;
  21.  
  22.   if (dimension == 0) {
  23.     x[n] = zerox + unitx*rand();
  24.     y[n] = zeroy + unity*rand();
  25.     z[n] = zeroz + unitz*rand();
  26.   } else if (dimension == 2) {
  27.     x[n] = zerox + $2 * unitx
  28.     y[n] = zeroy + $3 * unity
  29.     z[n] = zeroz + (unitz-zeroz)*rand();
  30.   } else if (dimension == 3) {
  31.     x[n] = zerox + $2 * unitx
  32.     y[n] = zeroy + $3 * unity
  33.     z[n] = zeroz + $3 * unitz
  34.   }
  35.  
  36.   adjacencies[n] = "";
  37.   for (i=2+dimension; i<=NF; i++) {
  38.     adjacencies[n] = adjacencies[n]"<"$i">"
  39.   }
  40.  
  41. }
  42.  
  43.  
  44. END {
  45.  
  46. #  for (n in adjacencies) if (adjacencies[n] != "") {
  47.   for (n in adjacencies) {
  48.     printf ("%d ", n);
  49.     printf ("{$ %d %d $} ", x[n], y[n]);
  50.  
  51.     if (LabelNodeWithNumber == 1) {
  52.       printf ("\"%d\"\n", n);
  53.     } else {
  54.       printf ("\"\"\n");
  55.     }
  56.  
  57.     split (adjacencies[n], edges, "[<>]");
  58.  
  59.     for (e in edges) if (edges[e] != "") {
  60.  
  61.       if ((directed == "DIRECTED") || (n < edges[e])) {
  62.     printf (" %d ", edges[e]);
  63.     if (LabelEdgeWithNumber == 1) {
  64.       if (directed == "DIRECTED") {
  65.         printf ("\"%d->%d\"\n", n, edges[e]);
  66.       } else {
  67.         printf ("\"%d-%d\"\n", n, edges[e]);
  68.       }
  69.     } else {
  70.       printf ("\"\"\n");
  71.     }
  72.       }
  73.     }
  74.  
  75.     printf (";\n");
  76.  
  77.   }
  78.  
  79.   print "END";
  80. }
  81.